package com.cardone.platform.common.service;

import java.util.List;

import org.springframework.cache.annotation.Cacheable;

import com.cardone.common.cache.Caches;

/**
 * 公共服务
 *
 * @author yaohaitao
 */
public interface CommonService {
	/**
	 * spring bean id
	 */
	String BEAN_ID = "com.cardone.platform.common.service.CommonService";

	/**
	 * 读取集合
	 * 
	 * @return bean函数名称集合
	 */
	@Cacheable(value = CommonService.BEAN_ID, key = Caches.KEY_0)
	List<String> readListProxyFunctionName();

	/**
	 * 代理函数
	 * 
	 * @param userId
	 *          用户标识
	 * @param proxyFunctionName
	 *          代理函数名称
	 * @param parameters
	 *          参数
	 * @return 执行结果
	 */
	Object proxyFunction(String userId, String proxyFunctionName, String parameters);
}